'use strict';
const dayjs = require("dayjs");
module.exports = app => {
    const { INTEGER, DATE, STRING,DECIMAL, TEXT } = app.Sequelize;
    return app.model.define(
        'VideoRecord',
        {
            video_id: {type: INTEGER, primaryKey: true, autoIncrement: true},
            /**
             *  `video_id` int NOT NULL AUTO_INCREMENT COMMENT '主键，每条记录对应一个视频文件',
             *   `farm_id` int DEFAULT NULL COMMENT '外键，关联兔舍信息表主键，表示该视频属于哪个场',
             *   `video_url` varchar(100) DEFAULT NULL COMMENT '视频路径“Standard\n/Format/Ch003/Camera\n/003\nNormal01”',
             *   `video_date` date DEFAULT NULL COMMENT '视频日期按照“年-月-日”的格式存储，日期筛选',
             */
            device_id: INTEGER,
            farm_id: INTEGER,
            video_url: STRING,
            video_date: {
                type: DATE,
                get() {
                    return dayjs(this.getDataValue('video_date')).format('YYYY-MM-DD HH:mm:ss');
                }
            },
            type: STRING, // 视频类型
            day: {
                type: DATE,
                get() {
                    return dayjs(this.getDataValue('day')).format('YYYY-MM-DD');
                }
            },
            hour: INTEGER, // 小时
            created_at: {
                type: DATE,
                get() {
                    return dayjs(this.getDataValue('created_at')).format('YYYY-MM-DD HH:mm:ss');
                }
            },
            updated_at: {
                type: DATE,
                get() {
                    return dayjs(this.getDataValue('updated_at')).format('YYYY-MM-DD HH:mm:ss');
                }
            },
        },
        {
            tableName: 'video_records',
            timestamps: true, // 启用时间戳(createdAt, updatedAt)
            updatedAt: 'updated_at', // 不想要 updatedAt
            createdAt: 'created_at', // 想要  createdAt 但是希望名称叫做 create_time
        }
    );
};

